package com.simtop.car.service;

import com.github.pagehelper.PageInfo;
import com.simtop.car.common.ServerResponse;
import com.simtop.car.pojo.*;

import java.util.List;

public interface UserService {
    User login(User user);

    List<Role> getRole();

    ServerResponse<String> register(User user);

    ServerResponse<String> generateCheckCode(String email);

    ServerResponse<String> forgetSendEmailCode(String email);

    ServerResponse<String> updatePassword(User user);

    ServerResponse<Grade> submitGrades(String[] brandType,User u,String[] word,Integer sourceCount,String ciYun,Integer questionNums,String answer);


    void expertLogin(User expertLoginUser);

    ServerResponse<String> submitComments(Integer gradeId, String comment);

    ServerResponse<PageInfo<Grade>> getGrade(Integer pageSize, Integer pageNum,User user);

    Integer getUserNums();

    Integer getExperimentNums();


    Echarts3 selectScoreUser();

    List<Echarts2> selectRoleUser();

    ServerResponse<List> getLoyaltyIndex(User u, String[] brandType);

    ServerResponse getYield(String[] brandType);

    ServerResponse addExperiment(List<Experiment> experiment,User user);

    ServerResponse addQuarter(Quarter quarter);

    ServerResponse<List> getExperiment(Experiment experiment);

    ServerResponse getQuarter(Quarter quarter);

    ServerResponse<PageInfo> searchUser(Integer pageNum, Integer pageSize, String username);

    ServerResponse deleteUser(Integer id);

    ServerResponse getExperimentSum(User u,String brandType);

    ServerResponse getLine(String[] brandType,Integer competitionId,User user);

    ServerResponse getScaleGrade(User u);

    ServerResponse commitScaleGrade(Integer gradeId, Integer scaleScore,String simulation,Integer aggregateAmount);

    List<Grade> exportExperimentGrade(User user);

    ServerResponse addQuestion(Question question, Integer id);

    ServerResponse addAnswer(Answer answer, Integer id);

    ServerResponse getAnswer(Integer questionId);

    ServerResponse deleteAnswer(Integer answerId, User user);

    ServerResponse deleteQuestion(Integer questionId);

    ServerResponse getQuestion(Integer pageNum, Integer pageSize, String username, String school, String question);

    List<WeiBo> getWeiboSourceData();

    List<WeChat> getWeChatSourceData();

    List<News> getNewsSourceData();

    List<Recruitment> getRecruitmentSourceData();

    List<Patent> getPatentSourceData();

    List<CompanyWebsite> getCompanyWebsiteSourceData();

    List<CommunityForum> getCommunityForumSourceData();

    List<CorporateAnnualReports> getCorporateAnnualSourceData();

    List<BusinessInformation> getBusinessInformationSourceData();
}
